Process Manage & Control

ctrl+Z: 프로세스 일시정지

celina@ubuntuserver:~/celina/test$ ./loop

^Z

[1]+  Stopped                 ./loop

celina@ubuntuserver:~/celina/test$ ./loop

^Z

[2]+  Stopped                 ./loop

celina@ubuntuserver:~/celina/test$ ./loop

^Z

[3]+  Stopped                 ./loop

celina@ubuntuserver:~/celina/test$ ./loop &

[4] 5756

celina@ubuntuserver:~/celina/test$ jobs

[1]   Stopped                 ./loop

[2]-  Stopped                 ./loop

[3]+  Stopped                 ./loop

[4]   Running                 ./loop &

jobs & bg
$jobs        //현재 시행중인 프로세스와 상태를 표시
$bg        //가장 최근에 멈춤 프로세스 다시 시행
$bg [jobs num]        //jobsnum 해당 프로세스 다시 실행
foreground process 제어하기
[CTRL]+Z: foreground 프로세스를 실행 중지 상태(suspend 모드)로 변경
맨 마지막 [CTRL]+Z로 중지된 프로세스는 bg 명령어로 background 프로세스로 실행될 수 있다.
jobs 명령어: 백그라운드로 진행 또는 중지된 상태로 있는 프로세스를 보여줌
[CTRL]+C: foreground 프로세스를 실행 종료(jobs로 찾을 수 없음)

생각) 운영체제 소프트웨어 인터럽트가 해당 프로세스로 보내짐으로써 제어가 가능하다.(시그널 사용)
아님 시그널을 사용자가 프로세스를 중지하기 위해 운영체제를 통해 실행하는 것임

ps [option(s)]
$ps        //현재 실행중인 프로세스를 프린트
option(s)
-a :시스템을 사용하는 모든 사용자의 프로세스를 출력(보통 aux와 같이 u, x 옵션을 같이 사용)
-u: 프로세스 소유자에 대한 상세 정보 출력
-l: 프로세스 관련 상세 정보 출력
-x: 터미널에 로그인한 후 실행한 프로세스가 아닌 프로세스들도 출력함
    주로 데몬 프로세스(daemon process)를 확인하기 위해 사용
    본래 ps 명령은 현재 쉘(shell)에서 실행한 프로세스만 보여주기 때문에 많이 사용된다.
-e: 해당 프로세스와 관련된 환경 변수 정보도 함께 출력
-f: 프로세스간 관계 정보도 출력
데몬 프로세스(daemon process): daemon은 악마를 의미하며, 사용자 모르게 시스템 관리를 위해 실행되는 프로세스로
                                                    보통 시스템이 부팅될 때 자동 실행(ftpd, inetd 등)
ps

celina@ubuntuserver:~/celina/test$ ps

    PID TTY          TIME CMD

   1261 pts/0    00:00:00 bash

   5743 pts/0    00:00:02 loop

   5748 pts/0    00:00:01 loop

   5751 pts/0    00:00:01 loop

   5939 pts/0    00:00:00 ps

ps -aux(ps aux)

celina@ubuntuserver:~/celina/test$ ps -aux

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root           1  0.0  1.1 102092 11548 ?        Ss   03:41   0:01 /sbin/init ma

root           2  0.0  0.0      0     0 ?        S    03:41   0:00 [kthreadd]

root           3  0.0  0.0      0     0 ?        I<   03:41   0:00 [rcu_gp]

root           4  0.0  0.0      0     0 ?        I<   03:41   0:00 [rcu_par_gp]

root           6  0.0  0.0      0     0 ?        I<   03:41   0:00 [kworker/0:0H

root           9  0.0  0.0      0     0 ?        I<   03:41   0:00 [mm_percpu_wq

root          10  0.0  0.0      0     0 ?        S    03:41   0:00 [ksoftirqd/0]

root          11  0.0  0.0      0     0 ?        I    03:41   0:01 [rcu_sched]

root          12  0.0  0.0      0     0 ?        S    03:41   0:00 [migration/0]

root          13  0.0  0.0      0     0 ?        S    03:41   0:00 [idle_inject/

root          14  0.0  0.0      0     0 ?        S    03:41   0:00 [cpuhp/0]

root          15  0.0  0.0      0     0 ?        S    03:41   0:00 [kdevtmpfs]

root          16  0.0  0.0      0     0 ?        I<   03:41   0:00 [netns]

root          17  0.0  0.0      0     0 ?        S    03:41   0:00 [rcu_tasks_kt

root          18  0.0  0.0      0     0 ?        S    03:41   0:00 [kauditd]

root          19  0.0  0.0      0     0 ?        S    03:41   0:00 [khungtaskd]

root          20  0.0  0.0      0     0 ?        S    03:41   0:00 [oom_reaper]

root          21  0.0  0.0      0     0 ?        I<   03:41   0:00 [writeback]

root          22  0.0  0.0      0     0 ?        S    03:41   0:00 [kcompactd0]

root          23  0.0  0.0      0     0 ?        SN   03:41   0:00 [ksmd]

root          24  0.0  0.0      0     0 ?        SN   03:41   0:00 [khugepaged]

root          70  0.0  0.0      0     0 ?        I<   03:41   0:00 [kintegrityd]

root          71  0.0  0.0      0     0 ?        I<   03:41   0:00 [kblockd]

root          72  0.0  0.0      0     0 ?        I<   03:41   0:00 [blkcg_punt_b

root          73  0.0  0.0      0     0 ?        I<   03:41   0:00 [tpm_dev_wq]

root          74  0.0  0.0      0     0 ?        I<   03:41   0:00 [ata_sff]

root          75  0.0  0.0      0     0 ?        I<   03:41   0:00 [md]

root          76  0.0  0.0      0     0 ?        I<   03:41   0:00 [edac-poller]

root          77  0.0  0.0      0     0 ?        I<   03:41   0:00 [devfreq_wq]

root          78  0.0  0.0      0     0 ?        S    03:41   0:00 [watchdogd]

root          79  0.0  0.0      0     0 ?        I    03:41   0:00 [kworker/u2:1

root          81  0.0  0.0      0     0 ?        S    03:41   0:00 [kswapd0]

root          82  0.0  0.0      0     0 ?        S    03:41   0:00 [ecryptfs-kth

root          84  0.0  0.0      0     0 ?        I<   03:41   0:00 [kthrotld]

root          85  0.0  0.0      0     0 ?        I<   03:41   0:00 [acpi_thermal

root          86  0.0  0.0      0     0 ?        S    03:41   0:00 [scsi_eh_0]

root          87  0.0  0.0      0     0 ?        I<   03:41   0:00 [scsi_tmf_0]

root          88  0.0  0.0      0     0 ?        S    03:41   0:00 [scsi_eh_1]

root          89  0.0  0.0      0     0 ?        I<   03:41   0:00 [scsi_tmf_1]

root          91  0.0  0.0      0     0 ?        I<   03:41   0:00 [vfio-irqfd-c

root          93  0.0  0.0      0     0 ?        I<   03:41   0:00 [ipv6_addrcon

root         102  0.0  0.0      0     0 ?        I<   03:41   0:00 [kstrp]

root         105  0.0  0.0      0     0 ?        I<   03:41   0:00 [kworker/u3:0

root         118  0.0  0.0      0     0 ?        I<   03:41   0:00 [charger_mana

root         119  0.0  0.0      0     0 ?        I<   03:41   0:00 [kworker/0:1H

root         155  0.0  0.0      0     0 ?        S    03:41   0:00 [scsi_eh_2]

root         156  0.0  0.0      0     0 ?        I<   03:41   0:00 [scsi_tmf_2]

root         157  0.0  0.0      0     0 ?        I<   03:41   0:00 [cryptd]

root         190  0.0  0.0      0     0 ?        S    03:41   0:00 [irq/18-vmwgf

root         192  0.0  0.0      0     0 ?        I<   03:41   0:00 [ttm_swap]

root         206  0.0  0.0      0     0 ?        I<   03:41   0:00 [kdmflush]

root         232  0.0  0.0      0     0 ?        I<   03:41   0:00 [raid5wq]

root         279  0.0  0.0      0     0 ?        S    03:41   0:00 [jbd2/dm-0-8]

root         280  0.0  0.0      0     0 ?        I<   03:41   0:00 [ext4-rsv-con

root         351  0.0  3.2  84452 32260 ?        S<s  03:41   0:00 /lib/systemd/

root         383  0.0  0.5  21568  5424 ?        Ss   03:41   0:00 /lib/systemd/

root         398  0.0  0.0      0     0 ?        I<   03:41   0:00 [iprt-VBoxWQu

root         531  0.0  0.0      0     0 ?        I<   03:41   0:00 [kaluad]

root         532  0.0  0.0      0     0 ?        I<   03:41   0:00 [kmpath_rdacd

root         533  0.0  0.0      0     0 ?        I<   03:41   0:00 [kmpathd]

root         534  0.0  0.0      0     0 ?        I<   03:41   0:00 [kmpath_handl

root         535  0.0  1.8 280308 18112 ?        SLsl 03:41   0:00 /sbin/multipa

root         549  0.0  0.0      0     0 ?        S<   03:41   0:00 [loop0]

root         554  0.0  0.0      0     0 ?        S<   03:41   0:00 [loop1]

root         555  0.0  0.0      0     0 ?        S<   03:41   0:00 [loop2]

root         556  0.0  0.0      0     0 ?        S<   03:41   0:00 [loop3]

root         558  0.0  0.0      0     0 ?        S    03:41   0:00 [jbd2/sda2-8]

root         559  0.0  0.0      0     0 ?        S<   03:41   0:00 [loop4]

root         560  0.0  0.0      0     0 ?        I<   03:41   0:00 [ext4-rsv-con

root         561  0.0  0.0      0     0 ?        S<   03:41   0:00 [loop5]

root         562  0.0  0.0      0     0 ?        S<   03:41   0:00 [loop6]

systemd+     575  0.0  0.6  90424  6380 ?        Ssl  03:41   0:00 /lib/systemd/

systemd+     630  0.0  0.7  26804  7888 ?        Ss   03:42   0:00 /lib/systemd/

systemd+     632  0.0  1.2  24092 12284 ?        Ss   03:42   0:00 /lib/systemd/

root         644  0.0  0.7 234456  7420 ?        Ssl  03:42   0:00 /usr/lib/acco

root         647  0.0  0.2   5568  2820 ?        Ss   03:42   0:00 /usr/sbin/cro

message+     648  0.0  0.4   7496  4420 ?        Ss   03:42   0:00 /usr/bin/dbus

root         653  0.0  1.7  26308 17292 ?        Ss   03:42   0:00 /usr/bin/pyth

syslog       654  0.0  0.4 224500  4684 ?        Ssl  03:42   0:00 /usr/sbin/rsy

root         655  0.2  8.1 827960 82052 ?        Ssl  03:42   0:05 dockerd --gro

root         657  0.0  3.3 629956 33344 ?        Ssl  03:42   0:01 /usr/lib/snap

root         659  0.0  0.8  17068  8040 ?        Ss   03:42   0:00 /lib/systemd/

daemon       663  0.0  0.2   3792  2240 ?        Ss   03:42   0:00 /usr/sbin/atd

root         670  0.0  0.3   5992  3736 tty1     Ss   03:42   0:00 /bin/login -p

root         698  0.0  0.6  12176  6740 ?        Ss   03:42   0:00 sshd: /usr/sb

root         709  0.0  0.6 232716  6812 ?        Ssl  03:42   0:00 /usr/lib/poli

root         716  0.0  1.9 105128 19648 ?        Ssl  03:42   0:00 /usr/bin/pyth

root         869  0.1  4.8 764072 48464 ?        Ssl  03:42   0:03 containerd --

root         888  0.0  0.0   2488   584 ?        S    03:42   0:00 bpfilter_umh

celina      1152  0.0  0.9  18700 10024 ?        Ss   03:42   0:00 /lib/systemd/

celina      1153  0.0  0.3 103448  3472 ?        S    03:42   0:00 (sd-pam)

celina      1158  0.0  0.4   7068  4068 tty1     S+   03:42   0:00 -bash

root        1175  0.0  0.8  13924  8696 ?        Ss   03:43   0:00 sshd: celina 

celina      1260  0.0  0.5  14056  5784 ?        S    03:43   0:00 sshd: celina@

celina      1261  0.0  0.4   7192  4800 pts/0    Ss   03:43   0:00 -bash

root        5644  0.0  0.0      0     0 ?        I    03:55   0:00 [kworker/u2:2

root        5672  0.0  0.0      0     0 ?        I    03:56   0:00 [kworker/0:1-

celina      5743  0.3  0.0   2356   524 pts/0    T    04:05   0:02 ./loop

celina      5748  0.2  0.0   2356   524 pts/0    T    04:06   0:01 ./loop

celina      5751  0.1  0.0   2356   592 pts/0    T    04:06   0:01 ./loop

root        5851  0.0  0.0      0     0 ?        I    04:14   0:00 [kworker/0:2-

root        5908  0.0  0.0      0     0 ?        I    04:19   0:00 [kworker/u2:0

celina      5922  0.0  0.3   7844  3484 pts/0    R+   04:21   0:00 ps -aux

USER: 사용자
PID: 프로세스 아이디
%CPU: 1분에 CPU 점유량
%MEM: 물리 메모리에서 프로세스가 사용하고 있는 정도
VSZ: 가상 메모리에서 실제 차지하고 있는 사이즈
RSS: 물리 메모리에서 실제 차지하고 있는 사이즈
TTY: 프로세스가 연결되어 있는 Terminal(resource)
STAT: 프로세스 상태
START: 프로세스 시작 일자
TIME: 프로세스 시작 시간
COMMAND: 프로세스 명령어
$kill [pid]
$kill -9 [pid]        //무조건 process kill